package com.portal.gateway.config;

import com.portal.gateway.handler.ValidateCodeHandler;
import com.portal.gateway.handler.WeatherRealTimeHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;

/**
 * 路由配置信息
 * 
 * @author portal
 */
@Configuration
public class RouterFunctionConfiguration
{
    @Autowired
    private ValidateCodeHandler validateCodeHandler;

    @Autowired
    private WeatherRealTimeHandler weatherRealTimeHandler;

    @SuppressWarnings("rawtypes")
    @Bean
    public RouterFunction routerFunction()
    {
//        return RouterFunctions.route(
//                RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
//                validateCodeHandler);
        return RouterFunctions.route()
                .GET("/code", RequestPredicates.accept(MediaType.TEXT_PLAIN), validateCodeHandler)
                .GET("/weather", RequestPredicates.accept(MediaType.APPLICATION_JSON), weatherRealTimeHandler)
                .build();
    }
}